package com.cskaoyan.bean.common;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author stone
 * @date 2022/01/06 16:24
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseRespVo<T> {
    T data;
    String errmsg;
    int errno;


    public static <T> BaseRespVo ok(T data) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setData(data);
        return baseRespVo;
    }
    public static <T> BaseRespVo okyjc(T data) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrmsg("成功");
        baseRespVo.setErrno(0);
        baseRespVo.setData(data);
        return baseRespVo;
    }

    public static <T> BaseRespVo invalidData(String msg) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(504);
        baseRespVo.setErrmsg(msg);
        return baseRespVo;
    }
    public static <T> BaseRespVo invalidData() {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(504);
        baseRespVo.setErrmsg("更新数据已失效");
        return baseRespVo;
    }
    public static <T> BaseRespVo invalidParameter(String msg) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(400);
        baseRespVo.setErrmsg(msg);
        return baseRespVo;
    }
    public static <T> BaseRespVo unAuthc() {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(502);
        baseRespVo.setErrmsg("认证失败");
        return baseRespVo;
    }

    /**
     * 我自己增加的方法，自己用
     * @author zhangYun
     * @param msg
     * @return
     * @param <T>
     */
    public static <T> BaseRespVo exception(String msg) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(Constant.EXCEPTION_CODE);
        baseRespVo.setErrmsg(msg);
        return baseRespVo;
    }

    public static <T> BaseRespVo fail(String msg) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrno(510);
        baseRespVo.setErrmsg(msg);
        return baseRespVo;
    }
    /**
     * 我自己增加的方法，自己用
     * @author zhangYun
     * @param data
     * @return
     * @param <T>
     */
    public static <T> BaseRespVo success(T data) {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setData(data);
        baseRespVo.setErrmsg(Constant.SUCCESS);
        return baseRespVo;
    }
    /**
     * 我自己增加的方法，自己用
     * @author zhangYun
     * @return
     * @param <T>
     */
    public static <T> BaseRespVo success() {
        BaseRespVo baseRespVo = new BaseRespVo();
        baseRespVo.setErrmsg(Constant.SUCCESS);
        return baseRespVo;
    }

}
